package com.springboot.controller;

import com.springboot.bean.Admin;
import com.springboot.bean.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;


import javax.servlet.http.HttpSession;
import java.util.ArrayList;

@Controller
@Slf4j
public class AdminController {
    @PostMapping("/login")
    public String login(Admin admin, HttpSession session, Model model) {
        //验证用户是否合法
        if (StringUtils.hasText(admin.getName()) && "123".equals(admin.getPwd())) {
            //将登录的用户保存到session
            session.setAttribute("loginAdmin", admin);

            //合法，重定向到manger.html页面【不使用请求转发是为了防止页面会重复提交】
            //这里为什么是manger.html?因为这样可以更加明确的表示是哪个页面
            //注意这里的/manger.html表示要去找方法的映射路径为/manger.html，而不是直接去找对应的html页面
            return "redirect:/manger.html";
        } else {
            //不合法,就重新登录
            model.addAttribute("msg", "账号/用户名错误");
            return "adminLogin";
        }
    }

    @GetMapping("/manger.html")
    public String mainPage(Model model, HttpSession session) {
        //这里先使用传统的方式session进行校验，后面我们会使用拦截器进行操作
//        Object loginAdmin = session.getAttribute("loginAdmin");
//        if (null != loginAdmin) {//说明成功登录过
//            //这里可以集合-模拟用户数据，放入到request域中并展示
//            //这个才是真正要到/templates/manger.html页面去
//            ArrayList<User> users = new ArrayList<>();
//            users.add(new User(1, "关羽", 20, "gy@qq.com", "123"));
//            users.add(new User(2, "张飞", 18, "zf@qq.com", "123"));
//            users.add(new User(3, "赵云", 30, "zy@qq.com", "123"));
//            users.add(new User(4, "黄忠", 60, "hz@qq.com", "123"));
//            users.add(new User(5, "马超", 45, "mc@qq.com", "123"));
//            users.add(new User(6, "刘备", 16, "lb@qq.com", "123"));
//            //将数据放入到request域中
//            model.addAttribute("users", users);
//            return "manger";
//        }else {//返回登录页面
//            model.addAttribute("msg","你没有登录/请登录");
//            return "adminLogin";
//        }

        //使用拦截器
        log.info("进入mainPage方法");
        ArrayList<User> users = new ArrayList<>();
        users.add(new User(1, "关羽", 20, "gy@qq.com", "123"));
        users.add(new User(2, "张飞", 18, "zf@qq.com", "123"));
        users.add(new User(3, "赵云", 30, "zy@qq.com", "123"));
        users.add(new User(4, "黄忠", 60, "hz@qq.com", "123"));
        users.add(new User(5, "马超", 45, "mc@qq.com", "123"));
        users.add(new User(6, "刘备", 16, "lb@qq.com", "123"));
        //将数据放入到request域中
        model.addAttribute("users", users);
        return "manger";
    }
}

